package com.w7vm.menuweb.entity;

import java.io.Serializable;
import javax.persistence.*;

import java.util.Date;
import java.util.List;
import java.util.Set;


/**
 * The persistent class for the CardapioEspecialidadeWeb database table.
 * 
 */
@Entity
@NamedQueries({
	@NamedQuery(name="CardapioEspecialidade.findCardapioEspecialidadeByIDSede", 
			query="SELECT b" +
					" FROM CardapioEspecialidadeWeb b" +
					" JOIN b.restauranteSedeWeb s " +
					" WHERE s.idRestauranteSedeWeb = :idRestaurante"),

	@NamedQuery(name="CardapioEspecialidade.findCardapioEspecialidadeByIDFilial", 
					query="SELECT b" +
							" FROM CardapioEspecialidadeWeb b" +
							" JOIN b.restauranteFilialWeb f " +
							" WHERE f.idRestauranteFilialWeb = :idRestaurante"),
})


public class CardapioEspecialidadeWeb implements Serializable {
	private static final long serialVersionUID = 1L;
	
	public static final String FIND_ESPECIALIDADE_BY_IDRESTAURANTESEDE = "CardapioEspecialidade.findCardapioEspecialidadeByIDSede";
	public static final String FIND_ESPECIALIDADE_BY_IDRESTAURANTEFILIAL = "CardapioEspecialidade.findCardapioEspecialidadeByIDFilial";


	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private int idCardapioEspecialidadeWeb;

	@Column(name="Acompanhamento")
	private String acompanhamento;

	@Column(name="NomePrato")
	private String nomePrato;
	
	@Column(name="DiasSemana")
	private String diasSemana;
	
	@Column(name="Descricao")
	private String descricao;

    @Temporal( TemporalType.DATE)
	@Column(name="DtInicio")
	private Date dtInicio;

    @Temporal( TemporalType.DATE)
	@Column(name="DtTermino")
	private Date dtTermino;

	@Column(name="Especialidade")
	private String especialidade;

	@Column(name="Status")
	private int status;

	//bi-directional many-to-one association to RestauranteFilialWeb
    @ManyToOne
	@JoinColumn(name="idRestauranteFilial")
	private RestauranteFilialWeb restauranteFilialWeb;

	//bi-directional many-to-one association to RestauranteSedeWeb
    @ManyToOne
	@JoinColumn(name="idRestauranteSede")
	private RestauranteSedeWeb restauranteSedeWeb;

	//bi-directional many-to-one association to ComposicaoCardEspecialidadeWeb
	@OneToMany(mappedBy="cardapioEspecialidadeWeb", cascade=CascadeType.ALL,fetch=FetchType.EAGER)
	private List<ComposicaoCardEspecialidadeWeb> composicaoCardEspecialidadeWebs;

    public CardapioEspecialidadeWeb() {
    }

	public int getIdCardapioEspecialidadeWeb() {
		return this.idCardapioEspecialidadeWeb;
	}

	public void setIdCardapioEspecialidadeWeb(int idCardapioEspecialidadeWeb) {
		this.idCardapioEspecialidadeWeb = idCardapioEspecialidadeWeb;
	}

	public String getAcompanhamento() {
		return this.acompanhamento;
	}

	public void setAcompanhamento(String acompanhamento) {
		this.acompanhamento = acompanhamento;
	}

	public String getDescricao() {
		return this.descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public Date getDtInicio() {
		return this.dtInicio;
	}

	public void setDtInicio(Date dtInicio) {
		this.dtInicio = dtInicio;
	}

	public Date getDtTermino() {
		return this.dtTermino;
	}

	public void setDtTermino(Date dtTermino) {
		this.dtTermino = dtTermino;
	}

	public String getEspecialidade() {
		return this.especialidade;
	}

	public void setEspecialidade(String especialidade) {
		this.especialidade = especialidade;
	}
	
	public String getNomePrato() {
		return this.nomePrato;
	}

	public void setNomePrato(String nomePrato) {
		this.nomePrato = nomePrato;
	}

	public int getStatus() {
		return this.status;
	}

	public void setStatus(int status) {
		this.status = status;
	}

	public RestauranteFilialWeb getRestauranteFilialWeb() {
		return this.restauranteFilialWeb;
	}

	public void setRestauranteFilialWeb(RestauranteFilialWeb restauranteFilialWeb) {
		this.restauranteFilialWeb = restauranteFilialWeb;
	}
	
	public RestauranteSedeWeb getRestauranteSedeWeb() {
		return this.restauranteSedeWeb;
	}

	public void setRestauranteSedeWeb(RestauranteSedeWeb restauranteSedeWeb) {
		this.restauranteSedeWeb = restauranteSedeWeb;
	}
	
	public List<ComposicaoCardEspecialidadeWeb> getComposicaoCardEspecialidadeWebs() {
		return this.composicaoCardEspecialidadeWebs;
	}

	public void setComposicaoCardEspecialidadeWebs(List<ComposicaoCardEspecialidadeWeb> composicaoCardEspecialidadeWebs) {
		this.composicaoCardEspecialidadeWebs = composicaoCardEspecialidadeWebs;
	}
	
	public String getDiasSemana() {
		return this.diasSemana;
	}

	public void setDiasSemana(String diasSemana) {
		this.diasSemana = diasSemana;
	}

	
}